home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-04-11 | 10.8 KB | 185 lines | [TEXT/ALFA] |
- What's new in 2.02?
- • Compiled with gBreakFailure switched off. Damn. Damn. Damn.
-
- What's new in 2.01?
- • Implemented padding YUV macroblocks with a repeat of the last value of
- each YUV triplet when macroblocks at the edge of a frame spill over
- the edge. The most common case of this is a 120 pixel high movie with a
- macroblock height of 128. In the past this spillover was filled randomly.
- The result of this is that MPEGs created are about 15% smaller.
- • Some diddling with the code used by the IDCT algorithm gives a speed boost
- of about 5% to both playing and encoding MPEGs.
- • Fixed a serious bug that prevented you from playing an MPEG if you started
- playing it then interrupted it. A nice byproduct of this is that I got
- jogging of MPEGs fully operational. You can now repeatedly view a section
- of the MPEG by hitting command-right-arrow then command-left-arrow to keep
- the MPEG moving forwards then backwards.
- • Altered the alert popped up when the Thread Manager is not present to make
- it more palatable to corporate and institutional users.
- • Fixed the MPEG buffering which would give problematic results for very small
- MPEGs (say three frames or less).
- • Finally went through all resources, marking them purgable or not and removing
- the unnecessary ones.
- • Fixed the "PBBIBB" default frame set to make it correspond to the user view
- of things, not my programmer's view.
- • Fixed a bug that prevented a temporary movie created by the movie controller
- handling an MPEG file from being destroyed.
- • Fixed two bugs in the Think Class Library dealing with the loading of dialogs
- then manipulating them without setting their memory blocks to non-purgable.
- • Fixed a long-standing bug in the MPEG player buffer-handling code that
- would cause the MPEG frame index to be incorrect if it was created while
- memory was short. This probably never caused problems except for very long
- MPEGs.
- • When converting a QT movie into a different movie form, the dialog that comes
- up asking you for compression options will have the frame rate and key
- frame rate set at what the original movie used, sparing you from having to
- guess. I will eventually have this working across all file conversions,
- not just movie-->movie.
- • The Think C 6 compiler contains a bug when performing code-motion optimization
- on complex loops. If you run through the assembly it produces in this case,
- it performs some very nifty register coloring and creating induction
- variables for the loop. It then leaves out one crucial instruction to
- update one of the induction variables each pass through the loop and so
- the code is garbage.
- As far as I can tell, this only affects one function in my code and I have
- used a #pragma there to prevent it happening, but the fact that bugs like
- this exist in the compiler is a little worrying.
- • Revised all memory allocation so that it is more likely to not to use up all
- memory reserves and leave nothing for toolbox.
- • Found an especially nasty bug involving grabbing frames from a QT movie
- which, when memory ran low, would leave the system GrafPort/GDevice
- environment in an inconsistent state.
- • Revised all uses of GWorld to use tempMem, but fallback to local heap if
- tempMem is unavailable.
- • Altered the strings used to popup error messages at startup if QuickTime
- is not available. These got mixed up when I moved code around.
- • The code to build the MPEG index when an MPEG is opened would run out of space
- when a very large MPEG was opened---one of a thousand frames or more. Now
- memory is allocated for this a little more flexibly.
- • Fixed a bug I inserted when I changed from Sparkle 1.6 to 1.7. I rewrote the
- Berkeley motion vector code to speed it up and in the process made one
- little typo, shifting a variable right by 1 not 2. The effect of this, in
- Sparkles 1.7 and 2.0 was that, under very rare occasions, blocks of color
- would appear a few pixels off from where they should be. The only place I
- ever saw this was three or four frames of the MPEG sales110.mpg.
- This is not related to a separate problem.
- The motion estimation code in the MPEG encoder (at present the Berkeley code
- with practially no changes) is not perfect. It sometimes creates
- blocks that appear to be wildly off from where they should be (by quite a few
- pixels). This is not very obvious in real life, but is very obvious in animation.
- This is largely a quantization artifact---it goes away if you lower the
- quantizations. But obviosly you don't want to do that always, just where
- necessary, so you really want a smarter quantizer that is adaptive.
- I'll work on issues like this as soon as I can.
- • When converting a movie with sound to MPEG or QT, occasionally pops of sound could
- be heard. This is fixed.
- • When converting movies with very low keyframe rates (say 20 or more dependent
- frames per keyframe) occasionally the display of the movie would get confused
- and appear to alternate between two different frames. This is fixed.
- • The TCL does a very naughty thing in dealing with memory shortages by calling
- Failure() which means traps that fail memory requests are left in an
- inconsistent state. I changed this behavior to something more friendly.
-
- What's new in 2.0?
- • The structure of the code has been completely altered to be based on
- threads. This makes it much easier for me to add new features to the code
- while having it retain MultiFinder friendliness.
- • Now opens and plays QT movies.
- • Now can create MPEG files. General conversion from
- {QT or MPEG}--->{QT or MPEG} is possible.
- • Many minor changes to the way files are opened, named and such.
- • Makes minor use of the speech manager if installed.
- • You can now play MPEGs backwards.
-
- What's new in 1.71?
- • The progress bar now updates itself properly at the very end of saving
- each frame to Quicktime. It also draws itself better on b/w screens.
- • More of the default QT movie player keystrokes now work.
- • The app notes if an MPEG file has many errors and if so warns you that
- it has probably been transferred to the mac incorrectly.
- • I have incorporated a workaround to make Sparkle work with the QT VM
- extension. However I do not recommend you use the two together. If you do
- use QT VM you will find Sparkle's memory usage a little less efficient
- than without using QT VM. This is because of the way QT VM works.
- • Fixed a bug that caused unusually sized MPEGs to display as distorted.
- • Sparkle should now cope a little better with low memory situations.
- • Added a small tweak to improve drawing on 16bit screens under low
- memory conditions.
- • Uses the most recently released version on the floating windoid.
- • I have learned of an app that will convert QT to MPEG on the mac. It's
- not the easiest thing to use and I recommend this only for people
- who really need this, not for people who just want to play around.
- See the README file for details.
-
- What's new in 1.7?
- • Opening files is much faster.
- • Fixed the size of the checkboxes in the Open File dialog to the correct
- size for all those millions of people who use Chicago as their system
- font cause they have no sense of aesthetics. Oops.
- • Now when Sparkle changes the file-type of an file, the Finder will update
- the icon immediately, instead of forcing you to open and close the
- folder to see a new icon. Thanks to Jamie McCarthy for telling me how
- to do this.
- • Added an "About Sparkle" dialog box to quieten the constant stream of
- complaints about this.
- • Changed the way progress is reported. I think the new scheme feels
- rather more elegant. (If you have a fast machine and only use small
- MPEGs, you may not notice this change much.)
- • Adde random access. You can now use the step backward stepper, or
- simply click in movie controller where you want to go. All standard
- movie controller clicks and keystrokes are supported.
- • Restructured the internal code vastly. This is what took most of the
- time and while it doesn't directly help you users, it gives me
- a framework that's much easier to build on. For example it should be
- trivial to add Apple Event support when I get round to that.
- • Three or four minor bugs were squelched, mostly involving Sparkle crashing
- when it encountered MPEGs with invalid data in them.
- • Now quits gracefully when started on a 68000 mac like a Classic, rather
- than crashing. I'm sure lots of people care about this.
- • Added better multi-tasking support. This takes two forms.
- One is that the length of the timeslices Sparkle uses before giving up
- the CPU are now absolute times. Before they were numbers that worked
- well for my SE/30, but probably not optimally for slower or faster
- machines.
- The second is that you can now context switch out of Sparkle while it
- is doing slow QT conversions (especially converting to Compact Video).
- The way I have implemented this is not wonderful, but the best I can
- do given the present way the code is structured. The next version
- will use the Thread Manager and will do this rather better.
- This second form of timeslicing is done through the
- SetSequenceProgressProc() call which is new in QT1.6 and which is why
- I now require use of QT1.6. Also QT does not yield the CPU very often,
- and (as far as I know) there is no way to make it yield more often.
- So while your machine is no longer completely frozen as it does its
- conversion, it's still not too pleasant to use for typing. I can't do
- much about this---complain to Apple and tell them to change this part of
- QT, or better yet the whole OS.
-
- What's new in 1.6?
- • I became tired of continually having to explain to people about mac
- file types, so I wrote a file filter function for the Open File dialog
- box which displays ALL files with a .mpg suffix. This should make use a
- lot easier for novices.
- • Fixed a bug that involved writing to NULL.
- • Fixed a bug that prevented IBP type MPEGs from rewinding when they
- reached the end and the play button was hit twice.
-
- What's new in 1.5.2?
- • I was disposing of a handle twice (specifically I was disposing of a
- pixmap and then its colortable, not realizing that DisposPixMap took
- care of the colortable for me.) Thanks to Dan Sears for pointing this out.
- I never noticed a problem due to this bug, but it's probably good to
- have killed it.
-
- Whats new in 1.5.1?
- • One part of my speed optimizing code was not being initialized properly.
- This caused a very specific type of MPEG file to show parts of its first
- frame as greenish blobs. Now fixed.
- • The code to detect errors in a corrupted MPEG file has been made even
- more robust. Substantially better recovery from such errors, by
- rebuilding the lost parts of a frame from the previous frame, has been
- introduced. Thanks to a wonderfully corrupt MPEG file I pulled off
- usenet with about 15 misc errors in it for pointing out new and
- ingenious ways to fail.
- • New icons, courtesy of Richard Lim in Britain. I hope you like them.
- You will have to rebuild the desktop to see them.